\documentclass[border=0.2cm]{standalone}
% Required package
\usepackage{tikz}
\usepackage{zenburn}
\usetikzlibrary{backgrounds} 

\setCJKmainfont{SourceHanSerifCN-Bold}
\tikzset{
  mybox/.style={draw=zenfg, rectangle, fill=zenbg},
  myarrow/.style={-latex,thick,draw=zenfg},
  mydasharrow/.style={-latex,dashed,thick,draw=zenfg},
}

\pgfdeclarelayer{bg}    % declare background layer
\pgfsetlayers{bg, main}  % set the order of the layers (main is the standard layer)

\begin{document}
\begin{tikzpicture}

  % Help grid
  % \draw[black!5,step=0.5] (-5,-5) grid (5,5);
  % \foreach \i in {-5,-4,...,5} 
  % {
  %   \node[below] at (\i,-5){\small \i};
  %   \node[left] at (-5,\i){\small \i};
  % };

  % Level 1
  \node[mybox] (kr) at (-3,5) {知识表示};
  \node[mybox] (ml) at (2.5,5) {机器学习};

  % Level 2
  \node[mybox] (pl) at (-4.1,3) {命题逻辑};
  \node[mybox] (fol) at (-1.9,3) {一阶逻辑};

  \node[mybox] (ip) at (0.3,3) {程序归纳};
  \node[mybox] (sl) at (2.5,3) {统计学习};
  \node[mybox] (nn) at (4.7,3) {神经网络};

  % Level 3
  \node[mybox] (rl) at (-4.1,1) {I. 命题规则学习};
  \node[mybox] (ilp) at (1,0.5) {II. 归纳逻辑程序设计};

  \node[mybox] (pilp) at (-2,-1) {III.1 概率归纳逻辑程序设计};
  \node[mybox] (srl) at (3,-1) {III.2 统计关系学习};

  % Level 4
  \node[mybox] (nesy) at (1.5,-3) {IV. 神经—符号学习};

  \begin{pgfonlayer}{bg} 
    % arrows
    \draw[myarrow] (kr) to[out=-120, in=80] (pl);
    \draw[myarrow] (kr) to[out=-60, in=100] (fol);
    \draw[myarrow] (ml) to[out=-120, in=80] (ip);
    \draw[myarrow] (ml) to[out=-90, in=90] (sl);
    \draw[myarrow] (ml) to[out=-60, in=100] (nn);
    \draw[myarrow] (pl) to[out=-90, in=90] (rl);
    \draw[myarrow] (sl) to[out=-120, in=0] (rl.east);
    \draw[myarrow] (fol) to[out=-45, in=135] (ilp);
    \draw[myarrow] (ip) to[out=-90, in=60] (ilp);
    \draw[myarrow, draw=zenblue] (fol) to[out=-120, in=90] (pilp);
    \draw[myarrow] (ip) to[out=-150, in=30] (pilp);
    \draw[mydasharrow, draw=zenblue] (sl) to[out=-160, in=150] (pilp);
    \draw[mydasharrow, draw=zenred] (fol) to[out=-12, in=35] (srl);
    \draw[myarrow] (ip) to[out=-30, in=60] (srl);
    \draw[myarrow, draw=zenred] (sl) to[out=-60, in=90] (srl);
    \draw[myarrow] (pilp) to[out=-90, in=120] (nesy);
    \draw[myarrow] (ilp) to[out=-90, in=90] (nesy);
    \draw[myarrow] (srl) to[out=-90, in=60] (nesy);
    \draw[myarrow] (nn) to[out=-90, in=0] (nesy.east);
  \end{pgfonlayer}
\end{tikzpicture}
\end{document}